<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>函数</title>
</head>
<body>
<script>
    //1 async函数中不一定要完全结合await
    //     有await的函数一定是async函数
    //2、await相当于then，可以直接拿到成功的Promise实例化对象的结果值(await -- 等待的意思 当代码执行到 await 时需要等待它后续的同步代码执行完成后再执行)
    //3、await一定要写在async函数之中，但是async函数之中可以没有await

    async function fun() {
        //内部执行异步的功能  并且得到成功的数据

        // 1. 如果 await 右侧为非Promise类型的数据 await 后面的值是什么得到的结果就是什么
        let result1 = await 123
        console.log(result1)

        // 2. 如果 await 右侧是成功的Promise类型数据
        let result2=new Promise((resolve, reject) => {
            resolve('success!!')
        })
        console.log(result2)

        let result22=await Promise.resolve('okk')
        console.log(result22)

        // 3. 如果 await 右侧是失败的Promise类型的数据 需要 try...catch 来捕获  (捕获完之后继续执行后续的代码)
        try{
            let result3=await new Promise((resolve, reject) => {
                reject('error')
            })
            console.log(result3)
        }catch (a){
            console.log(a)
        }
    }

    fun()

</script>
</body>
</html>